/* eslint-disable */
export const NODE_KEY = '$treeNodeId'

export const markNodeData = function(node, data) {
    if (!data || data[NODE_KEY]) return
    Object.defineProperty(data, NODE_KEY, {
        value: node.id,
        enumerable: false,
        configurable: false,
        writable: false
    })
}

export const getNodeKey = function(key, data) {
    if (!key) return data[NODE_KEY]
    return data[key]
}

export const findNearestComponent = (element, componentName) => {
    let target = element
    while (target && target.tagName !== 'BODY') {
        if (target.__vue__ && target.__vue__.$options.name === componentName) {
        return target.__vue__
        }
        target = target.parentNode
    }
    return null
}
